﻿using BLL;
using Model;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace HRP.Private.Cargos
{
    public partial class Criar : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!Page.IsPostBack)
            {
                if (Session["EmpresaActual"] != null)
                {
                    Session["VistaEmpresaId"] = ((hrp_empresas)Session["EmpresaActual"]).id;
                }
                CarregarDepartamentos();
            }
            Page.PreRender+=Page_PreRender;
            gravarBut.Click += gravarBut_Click;
            formPanel.Visible = true;
            msgPanel.Visible = false;
        }

        void Page_PreRender(object sender, EventArgs e)
        {
            if (Session["EmpresaActual"] != null && Session["VistaEmpresaId"] != null)
            {
                hrp_empresas empresa = (hrp_empresas)Session["EmpresaActual"];
                if (empresa.id != (int)Session["VistaEmpresaId"])//verifica se a empresa foi mudada
                {
                    CarregarDepartamentos();
                    Session["VistaEmpresaId"] = empresa.id;
                }
            }

        }

        void CarregarDepartamentos()
        {
            List<hrp_departamentos> listaDep = new List<hrp_departamentos>();
            if (Session["EmpresaActual"] != null)
            {
                hrp_empresas empresa = (hrp_empresas)Session["EmpresaActual"];
                listaDep.AddRange(Departamento_BLL.Instance.obterDepartamentosEmpresa((int)Session["idclient"], empresa.id, false, false).AsEnumerable());
            }
            departamentosList.DataSource = listaDep;
            departamentosList.DataBind();
        }

        void gravarBut_Click(object sender, EventArgs e)
        {
            if (!Page.IsValid)
                return;

            int depId = 0;
            Int32.TryParse(departamentosList.SelectedItem.Value, out depId);

            if (depId!=0 && Session["idclient"] != null && Session["EmpresaActual"] != null && Session["userid"] != null)
            {
                int id_cliente = (int)Session["idclient"];
                string userId = Session["userid"].ToString();
                hrp_empresas empresa = (hrp_empresas)Session["EmpresaActual"];
                int cargoId = Cargo_BLL.Instance.criarCargo(id_cliente, userId, string.Empty, empresa.id, nomeTB.Text.Trim(), obsTB.Text.Trim(),depId);
                if (cargoId > 0)
                {
                    formPanel.Visible = false;
                    msgPanel.Visible = true;
                }
            }
        }
    }
}